This description relates to carry bucket-aware hardware multiplication.
Very large numbers can be represented using multiple data units, for example a 420 digit number can be represented using fourteen 32-bit words. In general, adding two such numbers requires propagating carries from one word to the next. Multiplication of such large numbers using conventional approaches (e.g., “long multiplication”) may incur many such carry propagations during accumulation of partial sums.